php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 18.06.2006, 15:26  
Neuer Benutzer
 
Registriert seit: 18.06.2006
Beiträge: 5
Lina
Standard php fehlersuche - lösung?

Hallo!

Ich habe folgendes Problem, dass ich aus einem kompletten Datenbestand was basteln muss.

Fakt ich muss News auswerten. Die Tabellenzeile heisst News und hat wegen eines dynamischen Links diverse Felder mit Namen ID und eben eine Newsüberschrift mit Namen title.

So.. die Ausgabe soll so sein:

Newsüberschrift
> mehr
(mehr führt mit Hilfe der Variable ID zur dergleichen News direkt.)

PHP-Code:


PHP-Code:
<?php
$db_link 
= @mysql_connect('localhost''***''***')
 or die(
"Verbindung konnte nicht hergestellt werden: " mysql_error());
echo 
"Verbindung hergestellt";

$link = @mysql_select_db('**datenbank**'$db_link);
$sql  "SELECT * FROM news WHERE online='Y' ORDER BY zeit desc LIMIT 0,15";
$result mysql_query($sql$link);
  while (
$row=mysql_fetch_array($result))

    {

      echo 
"<tr>\n";

      echo 
$row['title'];

      echo 
"</tr>\n";

      echo 
"<tr>\n";

      echo 
"<td width=173 align=right><font face=verdana size=1 color=#AEAEAE><a href=\"http://www.Domainmeine.dee/index.php?mod=24&sub=".$row['id'].">&gt; mehr</a></td>\n";

      echo 
"</tr>\n";

      echo 
"<tr>\n";

      echo 
"<td width=173><font face=verdana size=1 color=#AEAEAE></td>";

      echo 
"</tr>\n";



    }
Ausgabe:
Zitat:
Verbindung hergestellt
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/htdocs/web4/html/neu/newsneu.php on line 9

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/htdocs/web4/html/neu/newsneu.php on line 10
9 und 10 sind die Zeilen mit $result= und while

Kann mir da jmd. helfen, wie das richig geht, Jungs?

Edit by Zergling: Benutzername und Passwort entfernt
Lina ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 18.06.2006, 15:37  
Gast
 
Beiträge: n/a
Standard

Zitat:
@mysql_select_db
Erstmal würde ich zur Fehlersuche die @ rausnehmen und mit mysql_error() arbeiten.
Hat die Tabelle news überhaupt Inhalt ?

PS: Komischer PHP-Highlighter hier ...
 
Alt 18.06.2006, 15:37  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Du benutzt doch mysql_error() schon bei mysql_connect().
Das gleiche könntest du mit mysql_select_db() und mysql_query() jetzt auch machen, denn offenbar hat MySQL etwas an deiner Anwendung zu meckern.

Die beiden Fehler sind die typischen Folgefehler.
Zergling-new ist offline  
Alt 18.06.2006, 15:56  
Neuer Benutzer
 
Registriert seit: 18.06.2006
Beiträge: 5
Lina
Standard

also so?
PHP-Code:
$db_link mysql_connect('localhost''***''***')
 or die(
"Verbindung konnte nicht hergestellt werden: " mysql_error());
echo 
"Verbindung hergestellt";

$link mysql_select_db('****'$db_link) or die("Fehler ist hier: " mysql_error());
$sql  "SELECT * FROM news WHERE online='Y' ORDER BY zeit desc LIMIT 0,15";
$result mysql_query($sql$link) or die("Fehler ist hier: " mysql_error());
  while (
$row=mysql_fetch_array($result)) 

da kommt auch nicht viel raus:
Zitat:
Verbindung hergestellt
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/htdocs/web4/html/neu/newsneu.php on line 9
Fehler ist hier:
news ist ausreichend mit Inhalt gefüllt ja.
Lina ist offline  
Alt 18.06.2006, 16:03  
Gast
 
Beiträge: n/a
Standard

Huhu, Augen auf!!!

$db_link = mysql_connect('localhost', '***', '***')
$result = mysql_query($sql, $link)

Gruß
phpfan
 
Alt 18.06.2006, 16:11  
Neuer Benutzer
 
Registriert seit: 18.06.2006
Beiträge: 5
Lina
Standard

Sorry.. ich bin Anfänger. Ich hab mir da den Code, den ich hier nutze aus der ursprünglichen Anwendung herausgezogen. Ein NETTERER Hinweis was genau falsch ist und wie ich das jetzt richtig mache würde mir schon helfen.

Aber mit "huhu, Augen auf" und sonst was fett geschrieben, weiss ich leider net, was Du meinst.


ok.. dann benenne ich das Ding jetzt auch $db_link.

Ich war der Meinung, dass ich eine andere Variable nutzen muss, weil $Link ist ja das Ergebnis aus der "Nennung" des Datenbanknamens und aus $db_link

Es gibt auch ein Ergebnis. mom - aber nicht korrekt.
Lina ist offline  
Alt 18.06.2006, 16:19  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Mit mysql_connect() baust du eine Verbindung zur MySQL-Datenbank auf.
Theoretisch kannst du auch mehrere Datenbank-Verbindungen gleichzeitig öffnen.

Damit du dann nicht durcheinander kommst und mysql_query() weiß, an welche geöffnete Datenbank-Verbindung der Query jetzt übertragen werden soll, übergibst du den MySQL-Link resource (den Rückgabewert von mysql_connect(), in deinem Script in $db_link gespeichert) an mysql_query().

mysql_select_db() hat als Rückgabewert aber keinen solchen MySQL-Link resource, sondern einen boolschen Wert, also TRUE oder FALSE.
http://de2.php.net/mysql_select_db
Zitat:
bool mysql_select_db ( string Datenbankname [, resource Verbindungs-Kennung] )
Die Meldung eben, ob die Auswahl der Datenbank geklappt hat.

mysql_query() übergibst du jetzt aber genau diesen boolschen Wert von mysql_select_db() obwohl dort wie oben erläutert, der MySQL-Link resource erwartet wird.

Lange Rede kurzer Sinn:
PHP-Code:
<?php
$link 
mysql_connect($host$username$pw);
...
$res mysql_query($sql$link);
?>
Wenn du in deinen Scripten sowieso immer nur eine MySQL-Verbindung aufbaust, kannst du auf die Übergabe des MySQL-Link resource komplett verzichten, denn
http://de.php.net/mysql_query
Zitat:
Wird die Verbindungs-Kennung nicht angegeben, wird die zuletzt geöffnete Verbindung angenommen.
Somit kannst du auch:
PHP-Code:
<?php
mysql_connect
($host$username$pw);
..
$res mysql_query($sql);
?>
schreiben.
Zergling-new ist offline  
Alt 18.06.2006, 19:15  
Neuer Benutzer
 
Registriert seit: 18.06.2006
Beiträge: 5
Lina
Standard Wunderbar & nächstes :)

Wunderbar. Es funktioniert. Ich hab das alles noch verbessert und erweitert.
Ein Teil des Newstextes (hier: Feld 'txt'; bzw. im Endeffekt $text) wird jetzt noch mit ausgelesen und ausgegeben.

PHP-Code:
<table width="400" cellpadding="0" cellspacing="0">

<?php

$db_link 
mysql_connect('localhost''****', *****');

$link = mysql_select_db('
*****', $db_link) or die("Fehler ist hier: " . mysql_error());
$sql  = "SELECT * FROM news WHERE online='
Y' ORDER BY zeit desc LIMIT 0,100";
$result = mysql_query($sql, $db_link);
  while ($row=mysql_fetch_array($result))
  
    {

      echo "<tr><td>";

      print "[b]<u><font size=2>".$row['
titel']."</font></u>[/b]";

      echo "
";
            $text=substr ($row['
txt'], 0, 200);
      print $text."</div>[/i]</a>[/b]</u>........";
      echo "
";

      echo "</div>[/i]</a>[/b]</u><a href=\"http://www.meinedomain.dee/neu/index.php?mod=24&sub=".$row['
id]."\" target=_blank>&gt; mehr</a>";
 echo 
"
"
;
 echo 
"<hr>";
 echo 
"</tr></td>";

    } 
?>
    </table>
Jetzt hab ich folgendes Problem, bei dem ich wirklich keine Lösung weiss.
Im $text bzw. im Feld 'txt' stehen auch HTML-Elemente wie [b] oder [i] oder meist am Anfang (und das ist mein Problem) ein Bild mit [img]..blabla[/img].

Am Besten wäre es jetzt, wenn aus dem Text dieser "Bild-HTML-Code" modifiziert wird mit einer vorgegebenen Bildhöhe - sprich: Der "Bild-HTML-Code" aus $text bzw. im Feld 'txt' (bsp. [img]24/bild.jpg[/img]) bekommt das Format "height="50" hinzu. Also: [img]24/bild.jpg[/img]

Nur.... wie macht man das klar?
Lina ist offline  
Alt 18.06.2006, 19:42  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Warum schreibst du das nicht beim Eintragen in die DB mit in den <img> Tag?
Zergling-new ist offline  
Alt 18.06.2006, 20:05  
Neuer Benutzer
 
Registriert seit: 18.06.2006
Beiträge: 5
Lina
Standard

Das ist alles ein recht altes selber-geschriebenes "CMS" (Progger nicht mehr erreichbar).

Neuere Newsskripte können das. ja. Aber eben nicht "unser" Altes. Bilder einzudingen ging nur mit <img>. Auch andere HTML-Tags wie [b], [i], usw. sind im Feld txt somit enthalten.
Lina ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Hilf bei Fehlersuche --> failed to open stream pit62 PHP Tipps 2006 13 22.06.2006 14:00
Login Fehlersuche PHP Tipps 2005-2 4 07.09.2005 15:58
Fehlersuche, Parsen funktioniert nicht! PHP Tipps 2005-2 6 23.08.2005 20:40
Fehlersuche FBI PHP Tipps 2005-2 16 02.08.2005 12:10
fehlersuche PHP Tipps 2005-2 45 03.07.2005 19:39
Fehlersuche PHP Tipps 2005-2 2 26.06.2005 21:55
Wohl etwas blind.......Fehlersuche. Calexico PHP Tipps 2005 2 23.04.2005 10:43
Cäsar-Verschlüsselung oder auch Fehlersuche im Script PHP Tipps 2005 13 31.03.2005 00:43
Rekursvive Funktionen - Fehlersuche =( PHP Tipps 2005 5 26.03.2005 21:25
mysql_fetch_row will nicht - kleines Script Fehlersuche Datenbanken 11 12.02.2005 20:51
Fehlersuche SQL-Abfrage PHP Tipps 2004-2 4 24.11.2004 11:56
Fehlersuche: Ordner aus Verzeichnis auslesen DannyD PHP Tipps 2004-2 6 19.11.2004 20:36
auf Fehlersuche PHP Tipps 2004-2 6 13.11.2004 02:02
Fehlersuche in SQL-Abfrage Datenbanken 11 10.11.2004 17:48

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
fehlersuche lösung, datenbank fehlersuche

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:04 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.