mysql_num_rows() Warnung ?

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
Bones van Helghast
Mitglied
Beiträge: 157
Registriert: 19.09.2008 08:31

mysql_num_rows() Warnung ?

Beitrag von Bones van Helghast »

Also manchmal fühl ich mich echt verarscht :roll:.
Diesmal geht es um ein Script das eingaben in einer SQL speichert und sie öffentlich ausgibt (so art blog)
Ich hab 2 Versionen dafür einmal englisch und enmal deutsch die englische version ist 1:1 die gleiche wie die deutsche nur dass die englische version eine extra datenbank anwählt und die deutsche version eine extra datenbank.

Ich hab wirklich die Datei 1x angelegt (erst englisch) habs mit c & p ein dublikat erstellt und die datenbank anwählung geändert bzw die action fürs formular geändert und nun kommt beim absenden dieser error:
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\Admin\admin_de.php on line 94
Das Formular + SQL befehl sieht so aus:

Code: Alles auswählen

<form action="Admin/admin_de.php" method="post">
<table style="width:100%">
<tr>
<td class="style3">Name:</td>
<td class="style1">Nachricht:</td>
</tr>
<tr>
<td class="style3">
<input id="username" maxlength="5" name="username" type="text" value="Admin" readonly></td>
</td>
<td class="style1">							
<textarea id="nachricht" name="nachricht" style="width: 95%; height: 150px"></textarea>
</td>
</tr>
</table>
<br><br>
<input type="submit" value="Abschicken">
</form>';


$username = $_POST["username"];
$datum = date("d.m.Y",time());
$nachricht = $_POST["nachricht"];


if($username == "" OR $nachricht == "")
    {
    echo "Bitte alle Felder überprüfen.";
    }
else {

$result = mysql_query("SELECT id FROM update WHERE nachricht LIKE '$nachricht'");
$menge = mysql_num_rows($result);

if($menge == 0)
    {
    $eintrag = "INSERT INTO update (username, datum, nachricht) VALUES ('$username', '$datum', '$nachricht')";
    $eintragen = mysql_query($eintrag);

    if($eintragen == true)
        {
        echo "Ticket erfolgreich erstellt.";
        }
    else
        {
        echo "Fehler beim Speichern des Tickets.";
        }


    }};
Zeile 94:

Code: Alles auswählen

$menge = mysql_num_rows($result);
Lustigerweiße funktioniert das Formular wenn ich das über die datenbank der englischen version laufen lass die datenbank für _de besteht aber !

Der Code für die MySQL DB:

Code: Alles auswählen

-- phpMyAdmin SQL Dump
-- version 3.2.4
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Erstellungszeit: 06. Februar 2010 um 12:20
-- Server Version: 5.1.41
-- PHP-Version: 5.3.1

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Datenbank: `zerdux`
--

-- --------------------------------------------------------

--
-- Tabellenstruktur für Tabelle `update`
--

CREATE TABLE IF NOT EXISTS `update` (
  `ID` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `username` varchar(5) NOT NULL,
  `nachricht` varchar(5000) NOT NULL,
  `datum` varchar(10) NOT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

--
-- Daten für Tabelle `update`
--

Ich versteh irgendwie die welt nicht mehr :roll:
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: mysql_num_rows() Warnung ?

Beitrag von Pyramide »

Meine Datenbankabfrage funktioniert nicht
Pyramide hat geschrieben:Auf jeden Fall solltest du den Code noch gegen SQL Injection absichern.
Warum das Formular mit einer anderen Datenbank plötzlich lustig und weiß sein sollte, entzieht sich jedoch meiner Kenntnis. War es vorher grün?.
KB:knigge
Benutzeravatar
Bones van Helghast
Mitglied
Beiträge: 157
Registriert: 19.09.2008 08:31

Re: mysql_num_rows() Warnung ?

Beitrag von Bones van Helghast »

Eine einfache Antwort wie:
Die Datenbank darf nicht "Update" heißen hätts auch getan, danke habs selber rausgefunden :evil:
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: mysql_num_rows() Warnung ?

Beitrag von Pyramide »

Eine Antwort wie
Vielen Dank Pyramide, dass du mir einen Weg gezeigt hast, wie ich mir zukünftig die Fehlermeldungen selbst anzeigen lassen kann, so dass ich nicht mehr bei jedem Problem ahnungslos da stehe und dann im Forum nach Hilfe fragen muss.

Auch vielen Dank für den Hinweis darauf, dass mein Code anfällig für SQL Injections ist. Das habe ich selbst nämlich nicht gewusst und ohne deinen netten Hinweis wäre ich vermutlich früher oder später Opfer eines Hackangriffs geworden.
hätte es auch getan.
KB:knigge
Antworten

Zurück zu „Coding & Technik“